﻿/************************************************************************

   Extended Silverlight Toolkit

   Copyright (C) 2010-2012 Xceed Software Inc.

   This program is provided to you under the terms of the Microsoft Public
   License (Ms-PL) as published at http://extendedsilverlight.codeplex.com/license

   Please purchase a commercial version of this toolkit if you are using
   it in a commercial product. The commercial versions support the project,
   and also include more features for each control, priority support,
   source code, updates, removed watermark, and a proprietary license.

   Visit http://xceed.com and follow @datagrid on Twitter.

  **********************************************************************/

using System;
using System.Windows;

namespace Xceed.Silverlight.ListBox.PositioningFunction
{
  internal class HorizontalWrapPositioning : PositioningFunctionBase
  {
    #region DisplayName Property

    internal override string DisplayName
    {
      get
      {
        return "Vertical Wrap Positioning function";
      }
    }

    #endregion

    #region Internal Methods
    internal override void PrepareLayoutPass( double partialOffset, Size itemContainerSize, Size groupContainerSize )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override void PlaceContainerForward( Size container, 
      bool isGroupContainer,
      out Point containerPosition, 
      out double containerProportionInViewport, 
      out int layoutProgressionPercentage, 
      out double rotateAngle )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override void PlaceContainerBackward( Size container, 
      bool isGroupContainer, 
      out Point containerPosition, 
      out double containerProportionInViewport, 
      out int layoutProgressionPercentage, 
      out double rotateAngle )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override Point GetBringIntoViewPositionForContainer( Size groupHeaderContainerSize,
      Size itemContainerSize,
      Size viewportSize,
      bool forwardScrolling )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override double GetScrollOffsetDifferenceBetweenPositions( Point originalPosition, Point targetPosition, Size containerSize )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override Rect GetCorrectedViewportVisibilityRect( Size stickyHeaderSize, Rect viewportVisibilityRect )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override void UpdateEffectiveViewportSizeInPixels( Size newViewportSizeInPixels )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override void CorrectViewportSize( double itemsInViewport, ref Size viewport )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override Point PlaceStickyHeader( Point lastContainerOfTheGroupPosition, Size containerSize, out double angle )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override double GetGroupHeaderProportion()
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }

    internal override Size GetCorrectedContainerSize( Size containerSize, Size viewportSize )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }


    #endregion

    #region Protected Internal Methods
    protected internal override double GetContainerProportionInEffectiveViewport( Size containerSize, Point containerPosition )
    {
      throw new NotSupportedException( "This method shoudn't be call for the wrap positionning" );
    }
    #endregion
  }
}
